package io.terminus.spzx.cart.service;

import io.terminus.spzx.model.entity.h5.CartInfo;

import java.util.List;

/**
 * @author lichunlong lcl253137@alibaba-inc.com
 * @desc 购物车Service接口
 * @date 2024-11-19
 */
public interface CartService {

    /**
     * 添加购物车
     *
     * @param skuId  SKU ID
     * @param skuNum SKU数量
     */
    void addToCart(Long skuId, Integer skuNum);

    /**
     * 获取购物车列表
     *
     * @return 购物车列表
     */
    List<CartInfo> getCartList();

    /**
     * 删除购物车商品
     *
     * @param skuId SKU ID
     */
    void deleteCart(Long skuId);

    /**
     * 更新购物车商品选中状态
     *
     * @param skuId     SKU ID
     * @param isChecked 是否选中: 1:选中 0:取消选中
     */
    void checkCart(Long skuId, Integer isChecked);

    /**
     * 更新购物车商品全部选中状态
     *
     * @param isChecked 是否选中: 1:选中 0:取消选中
     */
    void allCheckCart(Integer isChecked);

    /**
     * 清空购物车
     */
    void clearCart();

    /**
     * 获取选中的商品列表
     *
     * @return 选中的商品列表
     */
    List<CartInfo> getAllChecked();

    /**
     * 删除选中的商品
     */
    void deleteChecked();
}
